url-configuration.tsx 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { PermissionAction } from '@supabase/shared-types/out/constants'
  2. import { PageContainer } from 'ui-patterns/PageContainer'
  3. import {
  4. PageHeader,
  5. PageHeaderDescription,
  6. PageHeaderMeta,
  7. PageHeaderSummary,
  8. PageHeaderTitle,
  9. } from 'ui-patterns/PageHeader'
  10. import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
  11. import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader'
  12. import { RedirectUrls } from '@/components/interfaces/Auth/RedirectUrls/RedirectUrls'
  13. import SiteUrl from '@/components/interfaces/Auth/SiteUrl/SiteUrl'
  14. import AuthLayout from '@/components/layouts/AuthLayout/AuthLayout'
  15. import DefaultLayout from '@/components/layouts/DefaultLayout'
  16. import NoPermission from '@/components/ui/NoPermission'
  17. import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
  18. import type { NextPageWithLayout } from '@/types'
  19. const URLConfiguration: NextPageWithLayout = () => {
  20. const { can: canReadAuthSettings, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions(
  21. PermissionAction.READ,
  22. 'custom_config_gotrue'
  23. )
  24. if (isPermissionsLoaded && !canReadAuthSettings) {
  25. return <NoPermission isFullPage resourceText="access your project's authentication settings" />
  26. }
  27. return (
  28. <>
  29. <PageHeader size="default">
  30. <PageHeaderMeta>
  31. <PageHeaderSummary>
  32. <PageHeaderTitle>URL Configuration</PageHeaderTitle>
  33. <PageHeaderDescription>
  34. Configure site URL and redirect URLs for authentication
  35. </PageHeaderDescription>
  36. </PageHeaderSummary>
  37. </PageHeaderMeta>
  38. </PageHeader>
  39. <PageContainer size="default">
  40. {!isPermissionsLoaded ? (
  41. <PageSection>
  42. <PageSectionContent>
  43. <GenericSkeletonLoader />
  44. </PageSectionContent>
  45. </PageSection>
  46. ) : (
  47. <>
  48. <SiteUrl />
  49. <RedirectUrls />
  50. </>
  51. )}
  52. </PageContainer>
  53. </>
  54. )
  55. }
  56. URLConfiguration.getLayout = (page) => (
  57. <DefaultLayout>
  58. <AuthLayout title="URL Configuration">{page}</AuthLayout>
  59. </DefaultLayout>
  60. )
  61. export default URLConfiguration